#ifndef _BSP_SPI_
#define	_BSP_SPI_
#include "stm32f10x.h"
#include <stdio.h>       //是为了方便使用printf()函数

//在头文件中定义与硬件有关的操作
/*
	编程要点:
				1.初始化目标引脚和端口时钟
				2.使能SPI外设的时钟
				3.配置SPI外设的相关参数，并使能SPI外设
				4.编写基本的SPI按字节收发的函数(突出的是按字节)
				5.提供给上层程序调用
*/
/*SPI接口定义-开头*******(这里定义的都是共同的端口,有区别的)************/
#define				_SPIx				SPI1
#define				_SPI_CLOCK_FUN		RCC_APB2PeriphClockCmd
#define				_SPI_CLOCK_CMD		RCC_APB2Periph_SPI1

/*SCK引脚***********************/
#define				_SPI_SCK_CLOCK_FUN  RCC_APB2PeriphClockCmd
#define				_SPI_SCK_CLOCK_CMD	 RCC_APB2Periph_GPIOA
#define				_SPI_SCK_PORT		 GPIOA//(其实是一个结构体类型的指针)
#define				_SPI_SCK_PIN		 GPIO_Pin_5

/*MISO引脚*********************/
#define				_SPI_MISO_CLOCK_FUN  RCC_APB2PeriphClockCmd
#define				_SPI_MISO_CLOCK_CMD	 RCC_APB2Periph_GPIOA
#define				_SPI_MISO_PORT		 GPIOA//(其实是一个结构体类型的指针)
#define				_SPI_MISO_PIN		 GPIO_Pin_6

/*MOSI引脚*********************/
#define				_SPI_MOSI_CLOCK_FUN  RCC_APB2PeriphClockCmd
#define				_SPI_MOSI_CLOCK_CMD	 RCC_APB2Periph_GPIOA
#define				_SPI_MOSI_PORT		 GPIOA//(其实是一个结构体类型的指针)
#define				_SPI_MOSI_PIN		 GPIO_Pin_7


/***********通讯等待超时时间(其实是次数)**********************************/
#define	SPI_FLAG_TIMEOUT		((uint32_t)0x1000)    //4096
#define	SPI_LONG_TIMEOUT		((uint32_t)(10*SPI_FLAG_TIMEOUT)) //40960


void SpiInit( void );
uint8_t SpiInOut( uint8_t outData );

#ifndef		_BSP_SPI_C

#endif

#endif

